【精选】Maven打包:将config和lib以及jar分开打包(探讨各种打包的区别) 您所在的位置:网站首页 maven jar plugin manifest 【精选】Maven打包:将config和lib以及jar分开打包(探讨各种打包的区别)

【精选】Maven打包:将config和lib以及jar分开打包(探讨各种打包的区别)

2023-11-05 10:15| 来源: 网络整理| 查看: 265

1. 声明

当前内容主要为测试和使用Maven打包,将当前的资源文件、maven的lib文件以及生成的jar文件分开来

当前内容为:

使用maven打包并分离jar项目中的lib、resources、jar使用springboot打包使用eclipse的export方式打包比较各种的优缺点 2.maven打包配置(将lib、resources、jar分离)

基本的pom

org.apache.maven.plugins maven-jar-plugin 2.6 true lib/ com.hy.apache.commons.test.cli.MySQLConnectionCliTest config/. org.apache.maven.plugins maven-dependency-plugin 2.10 copy-dependencies package copy-dependencies ${project.build.directory}/lib resources **/*.properties **/*.xml **/*.tld true ${project.build.directory}/config/

maven-dependency-plugin将依赖打成lib包,指定了输出文件的位置 org.apache.maven.plugins,主要是添加启动类,并添加config为classpah查找的位置 resources中主要为指定资源或者配置文件输出的位置为config

2.指定打包后: 在这里插入图片描述

此时lib文件和config文件在同一目录下,并且可以执行

3. springboot方式打包

由于当前项目不是一个web项目,所以没有使用springboot的注解,但是使用的是springboot的打包,所以打包后会将当前的资源文件放入在classes中

org.springframework.boot spring-boot-starter-parent 2.1.18.RELEASE org.springframework.boot spring-boot-maven-plugin com.hy.apache.commons.test.cli.MySQLConnectionCliTest resources **/*.properties **/*.xml **/*.tld true

结果为: 在这里插入图片描述 虽然可以手动修改并将db.properties设置在外面但是无法得到该配置文件(有的时候需要将lib打到jar里面,且有的时候并不需要web程序,且有的时候需要配置文件在外面)

4.eclipse的默认export方式打包

在这里插入图片描述 在这里插入图片描述 发现该打包没有任何的lib库,不能执行

5. 比较

在这里插入图片描述

在这里插入图片描述 在这里插入图片描述

依次看来,相同点都是主要的入口类,当前文件的版本

1.maven中的Class-Path指定了两个位置一个是config/一个是lib,这就是为什么可以找到config文件和lib文件的原因(如果修改这两个位置就可以实现配置文件的修改和库的修改了)

2.SpringBoot中的Spring-Boot-Classes和Spring-Boot-Lib分别指向两个不同的地址,且都是指向jar包中的内部的文件的地址(源码发现具有final修饰,所以改动小)

3.本人直觉判断maven的打包和eclipse的export方式的具有共同点

6. 修改eclipse打包的MANIFEST.MF文件(直接添加Class-Path并复制配置文件和lib文件)

使用winrar查看 在这里插入图片描述 修改该文件(注意有两个换行)

Manifest-Version: 1.0 Class-Path: config/. lib/commons-cli-1.4.jar lib/mysql-connector-java-5.1.34.jar Main-Class: com.hy.apache.commons.test.cli.MySQLConnectionCliTest

在这里插入图片描述

拷贝对应的config文件和lib文件(或者手动创建也可以) 在这里插入图片描述

执行结果: 在这里插入图片描述 直接由不可执行变成执行成功(这个表示Class-Path可以指定多个位置,指定为config文件位置可以从类路径上加载配置文件,指定为lib可以从类路径上加载jar文件)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有